<div class="card">
  <div class="numbers">
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
    <span class="number"></span>
  </div>
  <div class="needles">
    <span class="h"></span>
    <span class="m"></span>
    <span class="s"></span>
    <span class="center"></span>
  </div>
  <div class="pie"></div>
</div>

<style>
/* From Uiverse.io by escannord  - Tags: neumorphism, card, realistic, clock */
.card {
  width: 200px;
  height: 200px;
  background: transparent;
  border-radius: 50%;
  border: 20px solid transparent;
  position: relative;
  overflow: hidden;
  box-shadow: 2px 2px 2px black, inset 2px 2px 2px black,
    -1px -1px 5px rgba(0, 0, 0, 0.473), inset -1px -1px 5px rgba(0, 0, 0, 0.473);
}

.numbers {
  font-weight: bold;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 100%;
  height: 100%;
  border-radius: 50%;
  padding: 20px;
  background-color: rgb(234, 221, 247);
}

.number {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  display: inline-block;
  width: 0.1rem;
  height: 0.9rem;
  background-color: rgb(12, 26, 109);
}
.number:nth-child(1) {
  transform: translate(-50%, -50%) rotateZ(calc(30deg)) translateY(-80px);
}

.number:nth-child(2) {
  transform: translate(-50%, -50%) rotateZ(calc(60deg)) translateY(-80px);
}

.number:nth-child(3) {
  transform: translate(-50%, -50%) rotateZ(calc(90deg)) translateY(-80px);
}

.number:nth-child(4) {
  transform: translate(-50%, -50%) rotateZ(calc(120deg)) translateY(-80px);
}

.number:nth-child(5) {
  transform: translate(-50%, -50%) rotateZ(calc(150deg)) translateY(-80px);
}

.number:nth-child(6) {
  transform: translate(-50%, -50%) rotateZ(calc(180deg)) translateY(-80px);
}

.number:nth-child(7) {
  transform: translate(-50%, -50%) rotateZ(calc(210deg)) translateY(-80px);
}

.number:nth-child(8) {
  transform: translate(-50%, -50%) rotateZ(calc(240deg)) translateY(-80px);
}

.number:nth-child(9) {
  transform: translate(-50%, -50%) rotateZ(calc(270deg)) translateY(-80px);
}

.number:nth-child(10) {
  transform: translate(-50%, -50%) rotateZ(calc(300deg)) translateY(-80px);
}

.number:nth-child(11) {
  transform: translate(-50%, -50%) rotateZ(calc(330deg)) translateY(-80px);
}

.number:nth-child(12) {
  transform: translate(-50%, -50%) rotateZ(calc(0deg)) translateY(-80px);
}

.number:nth-child(3),
.number:nth-child(6),
.number:nth-child(9),
.number:nth-child(12) {
  width: 0.3rem;
  height: 1.5rem;
}

.needles {
  position: relative;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.h,
.m,
.s,
.center {
  display: inline-block;
  width: 7px;
  height: 20px;
  background-color: black;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  border-radius: 50% 50% 0 0;
}

.s {
  transform: translate(-50%, -80%);
}

.h {
  background-color: black;
  transform-origin: 50% 100%;
  animation: rotate 43200s 60s infinite linear;
  transform: translate(-50%, -100%) rotateZ(5deg);
  height: 2.5rem;
  z-index: 1;
}

.m {
  background-color: rgb(176, 176, 185);
  z-index: 2;
  height: 4rem;
  width: 5px;
  transform-origin: 50% 100%;
  transform: translate(-50%, -100%) rotateZ(60deg);
  animation: rotate 3600s 60s infinite steps(60, end);
}

.s {
  background-color: rgb(240, 31, 31);
  z-index: 3;
  height: 5rem;
  width: 3px;
  transform-origin: 50% 80%;
  animation: rotate 60s infinite steps(60, end);
}

.center {
  width: 15px;
  height: 15px;
  background-color: white;
  border: solid 4px red;
  z-index: 4;
  border-radius: 50%;
}

@keyframes rotate {
  100% {
    transform: translate(-50%, -80%) rotateZ(360deg);
  }
}

</style>
    